QuickCheck:A Lightweight Tool for Random Testing of Haskell Programs